/**
 * 
 */
package com.sinoglobal.wallet.api;

import android.content.Context;

import com.sinoglobal.wallet.entity.W_AlipayEntiy;
import com.sinoglobal.wallet.entity.W_BalanceEntity;
import com.sinoglobal.wallet.entity.W_CouponDetail;
import com.sinoglobal.wallet.entity.W_CouponInstrutionEntity;
import com.sinoglobal.wallet.entity.W_CouponListEntity;
import com.sinoglobal.wallet.entity.W_DynamicKeyEntity;
import com.sinoglobal.wallet.entity.W_HomeBalanceEntity;
import com.sinoglobal.wallet.entity.W_OrderStateEntiy;
import com.sinoglobal.wallet.entity.W_RechargeRecordItemEntity;
import com.sinoglobal.wallet.entity.W_RsListVo;
import com.sinoglobal.wallet.entity.W_SinoBaseEntity;
import com.sinoglobal.wallet.entity.W_UpayEntiy;
import com.sinoglobal.wallet.entity.W_VerifyPassNumVo;
import com.sinoglobal.wallet.entity.W_VerifyPassVo;
import com.sinoglobal.wallet.entity.W_WechatEntiy;
import com.sinoglobal.wallet.entity.W_WithdrawalMoneyEntity;
import com.sinoglobal.wallet.entity.W_WithdrawalSuccessEntity;
import com.sinoglobal.wallet.entity.W_WithdrawlInstrutionEntiy;

/**
 * 网络访问基类，存放所有网络访问方法
 * @author KeZhuang
 *
 */
public interface Remote {
	/**
	 *获去主页数据
	 * @param context
	 * @return
	 * @throws Exception
	 */
	public W_HomeBalanceEntity getBalance(Context context) throws Exception;
	/**
	 *提现余额
	 * @param context
	 * @return
	 * @throws Exception
	 */
	public W_WithdrawalMoneyEntity getDrawMoneyLog(Context context,String page,String count) throws Exception;
	/**
	 *获去余额记录
	 * @param context
	 * @return
	 * @throws Exception
	 */
	public W_BalanceEntity getDetail(Context context,String page,String amountType,String count) throws Exception;
	/**
	 *提现金额描述说明
	 * @param context
	 * @return
	 * @throws Exception
	 */
	public W_WithdrawlInstrutionEntiy getWithDrawlInstrution()throws Exception;
	/**
	 *提现请求
	 * @param context
	 * @return
	 * @throws Exception
	 */
	public W_WithdrawalSuccessEntity getTiXian(Context context,String password,String amount,String tradeSn,String modelid,String payType,String userbcid,String businessTypeKey,String id,String key)throws Exception ;
	/**
	 *获去主页数据
	 * @param context
	 * @return
	 * @throws Exception
	 */
	public W_VerifyPassNumVo getUnPassWordNum(Context context) throws Exception;
	/**
	 * 
	 * @author lijingjing
	 * @createdate 2015-10-30 上午10:30:12
	 * @Description: (获取手机验证码接口)
	 * @param productCode
	 * @param userId
	 * @return
	 * @throws Exception
	 *
	 */
	public W_SinoBaseEntity getCode(Context context) throws Exception;
	/**
	 * 
	 * @author lijingjing
	 * @createdate 2015-10-28 下午5:23:43
	 * @Description: (验证手机验证码接口)
	 * @param userid
	 * @param captcha
	 * @return
	 * @throws Exception
	 *
	 */
	public W_SinoBaseEntity verifyCode(Context context, String captcha) throws Exception;
	
	/**
	 * 
	 * @author lijingjing
	 * @createdate 2015-10-29 下午2:40:56
	 * @Description: (设置支付密码)
	 * @param userId
	 * @param paypassword
	 * @return
	 * @throws Exception
	 *
	 */
	public W_SinoBaseEntity settingPassWord(Context context, String paypassword, String id,String key) throws Exception;
	
	/**
	 * 
	 * @author lijingjing
	 * @createdate 2015-10-30 上午11:01:54
	 * @Description: (验证支付密码)
	 * @param productCode
	 * @param userId
	 * @param payPassword
	 * @return
	 * @throws Exception
	 *
	 */
	public W_VerifyPassVo verifyPassWord(Context context, String payPassword, String id,String key) throws Exception;
	
	/**
	 * 
	 * @author lijingjing
	 * @createdate 2015-10-30 上午11:04:17
	 * @Description: (修改支付密码)
	 * @param productCode
	 * @param userId
	 * @param payPassword
	 * @return
	 * @throws Exception
	 *
	 */
	public W_SinoBaseEntity updatePassWord(Context context, String payPassword) throws Exception;
	
	/**
	 * 
	 * @author lijingjing
	 * @createdate 2015-10-30 上午11:05:48
	 * @Description: (是否设置了支付密码)
	 * @param productCode
	 * @param userId
	 * @return
	 * @throws Exception
	 *
	 */
	public W_SinoBaseEntity getSelectPassWord(Context context) throws Exception;
	/**
	 * 动态秘钥获取
	 * @return
	 * @throws Exception
	 */
	public W_DynamicKeyEntity getDynamicKey()throws Exception;
	
	/**
	 * 
	 * @author lijingjing
	 * @createdate 2015-10-29 下午2:53:58
	 * @Description: (获取用户银行卡列表)
	 * @param userId
	 * @return
	 * @throws Exception
	 *
	 */
	public W_RsListVo getBankList(Context context) throws Exception;
	
	/**
	 * 
	 * @author lijingjing
	 * @createdate 2015-10-30 上午10:19:40
	 * @Description: (添加用户银行卡)
	 * @param userId
	 * @param bankID  银行ID
	 * @param bankCardSN  银行卡卡号 
	 * @param bankCardUser  银行卡开户人
	 * @return
	 *
	 */
	public W_SinoBaseEntity getAddBank(Context context, String bankId, String bankCardSN, String bankCardUser) throws Exception;
	/**
	 * 优惠券说明简介；
	 */
	public W_CouponInstrutionEntity getCouponInstrution() throws Exception;
	/**
	 * 
	 * @author lijingjing
	 * @createdate 2015-10-30 上午10:48:03
	 * @Description: (删除用户银行卡)
	 * @param productCode
	 * @param userbcid  /银行卡id
	 * @param status  //银行卡绑定状态  传参数 status只写 1
	 * @return
	 * @throws Exception
	 *
	 */
	public W_SinoBaseEntity getDeleteBank(Context context, String userbcid, String status) throws Exception;
	
	/**
	 * 
	 * @author lijingjing
	 * @createdate 2015-10-30 上午10:55:06
	 * @Description: (获取银行卡详情)
	 * @param productCode
	 * @param userbcid
	 * @return
	 * @throws Exception
	 *
	 */
//	public SinoBaseEntity getBankXQ(Context context, String userbcid) throws Exception;
	//二期接口
	/**
	 * 支付宝支付接口， 微信支付接口，U付支付接口
	 * @param context 
	 * @param amount 金额		
	 * @param goodDepice 商品描述	
	 * @param goodName 商品名字
	 * @param modelId 所属模块的名字
	 * @param paySource 支付来源
	 * @return
	 * @throws Exception
	 */
	public W_AlipayEntiy getAlipay(Context context,String orderSn, String amount, String goodDepice, String goodName, String modelId, String paySource)throws Exception ;
	public W_WechatEntiy getWeChat(Context context,String orderSn, String amount, String goodDepice, String goodName, String modelId, String paySource)throws Exception ;
	public W_UpayEntiy getUpay(Context context,String orderSn, String amount, String goodDepice, String goodName, String modelId, String paySource)throws Exception ;
	/**
	 * 
	 * @param context查询订单状态
	 * @param orderSn 交易号
	 * @return
	 * @throws Exception
	 */
	public W_OrderStateEntiy getOrderState(Context context, String orderSn) throws Exception;
	/**
	 * 充值记录
	 * @param context 
	 * @param page页数
	 * @param count  数据条目
	 * @return
	 * @throws Exception 
	 */
	
	 
	public W_RechargeRecordItemEntity getChargeLog(Context context,String page,String count)throws Exception;
	public W_CouponListEntity getCouponList(Context context,int currentPage,int useState,int count,String couponType)throws Exception;
	public W_CouponDetail getCouponDetail(int claimId) throws Exception;
}
